`define		ysyx_20220337_zero_word		64'd0

`define		ysyx_20220337_lui			7'b0110111
`define		ysyx_20220337_auipc			7'b0010111
`define		ysyx_20220337_jal			7'b1101111
`define		ysyx_20220337_jalr			7'b1100111
`define		ysyx_20220337_B_type		7'b1100011
`define		ysyx_20220337_load			7'b0000011
`define		ysyx_20220337_store			7'b0100011
`define		ysyx_20220337_I_type		7'b0010011
`define		ysyx_20220337_R_type		7'b0110011

`define 	ysyx_20220337_add  			5'b00001 //ALU +
`define 	ysyx_20220337_sub  			5'b00010 //ALU -
`define     ysyx_20220337_and           5'b00011 //ALU &
`define     ysyx_20220337_or            5'b00100 //ALU |
`define     ysyx_20220337_xor           5'b00101 //ALU ^
`define 	ysyx_20220337_sl  			5'b00110 //ALU <<
`define 	ysyx_20220337_sr 			5'b00111 //ALU >> 
`define 	ysyx_20220337_sla  			5'b01000 //ALU <<< //没用到
`define     ysyx_20220337_sra           5'b01001 //ALU >>>
`define     ysyx_20220337_slt           5'b01010 //ALU < 则置位 有符号
`define     ysyx_20220337_sltu          5'b01011 //ALU < 则置位 无符号 
`define     ysyx_20220337_sge           5'b01100 //ALU >= 有符号
`define     ysyx_20220337_sgeu          5'b01101 //ALU >= 无符号
`define     ysyx_20220337_seq           5'b01110 //ALU == 有符号
`define     ysyx_20220337_sne           5'b01111 //ALU ！= 有符号
`define     ysyx_20220337_mul           5'b10000 //ALU *
`define     ysyx_20220337_mulh          5'b10001 //ALU * 高位乘法
`define     ysyx_20220337_mulhu         5'b10010 //ALU * 无符号乘法
`define     ysyx_20220337_mulhsu        5'b10011 //ALU * 有符号*无符号
`define     ysyx_20220337_div           5'b10100 //ALU /
`define     ysyx_20220337_divu          5'b10101 //ALU / 无符号
`define     ysyx_20220337_rem           5'b10110 //ALU 求余数
`define     ysyx_20220337_remu          5'b10111 //ALU 求余数 无符号

`define     ysyx_20220337_RW_8bit       2'b00
`define     ysyx_20220337_RW_16bit      2'b01
`define     ysyx_20220337_RW_32bit      2'b10
`define     ysyx_20220337_RW_64bit      2'b11